import db from '../db/index.js'

export const getAllUser = async (req, res) => {
    try {
        const [rows] = await db.query('select id, name, subject, grade from subject')
        console.log('query subject:', rows)
        res.send({ status: 0, message: '获取用户列表数据成功!', data: rows })
    } catch (e) {
        res.send({ status: 1, message: '获取用户列表数据失败', data: null })
    }
}

// 演示如果更新用户的信息, 这里可以看到预编译的写法 直接写在参数中即可
const user = { id: 1, username: 'aaa', password: '000' }
let sqlStr = 'update users set username = ?, password = ? where id = ?'
db.query(sqlStr, [user.username, user.password, user.id], (err, result) => {
    if (err) return console.log(err.message)
    if (result.affectedRows === 1) {
        console.log('更新成功!')
    }
})

// 简写预编译方式, 上述适用于 ? 比较少
const userInfo = { username: 'aaa', password: '000'}
const insertSql = 'insert info users set ?'
db.query(sqlStr, userInfo, (err, results) => {}) // 中间的参数不再一一展开, 插件会自己将 userInfo 中的属性全添加到 ? 中

// 简写第一个修改的
sqlStr = 'update users set ? where id = ?' // 将条件进行分类, 都是 set 的就用一个 ? 代替
db.query(sqlStr, [userInfo, user.id], (err, results) => {})
